tensorflow 计算图和操作ops

当我们导入TensorFlow包的时候,系统会帮我们产生一个默认人的图,它被存在_default_graph_stack中,但是我们没有权限直接进入这个图,我们需要使用 tf.get_default_graph()命令来获取图。

graph=tf.get_default_graph()

tensorflow中的图上的节点称之为operations或者ops。我们可以使用 graph.get_operations()命令来获取图中的operations.

ops=graph.get_operations()
print(ops)
-->[]

现在,因为图中没有操作,所以我们返回的是[ ]。我们可以向图中添加操作,比如我们先定义一个常量 input_value。

现在,这个常量作为一个节点添加到了图中,作为一个operations。现在,我们能发现operations中的存在值了。

input_value=tf.constant(1.0)
ops=graph.get_operations()
print(ops)
print(ops[0].node_def)

结果:
<tensorflow.python.framework.ops.Graph object at 0x00000269805EB550>
[<tf.Operation 'Const' type=Const>]
name: "Const"
op: "Const"
attr {
  key: "dtype"
  value {
    type: DT_FLOAT
  }
}
attr {
  key: "value"
  value {
    tensor {
      dtype: DT_FLOAT
      tensor_shape {
      }
      float_val: 1.0
    }
  }
}

tensorflow还有很多有意义的事情,但是你必须给每个操作都赋予明确的含义,即使只是一个常量。
如果我们查看常量input_value,我们将只能看到他是一个32位的浮点类型的tensor,维度是0。

print(input_value)
结果:
Tensor("Const:0", shape=(), dtype=float32)

可能你注意到了,我们发现这个操作并没有告诉我们input_value的值是多少。这是为什么呢?因为图graph只是定义了操作operations,但是操作operations只能在session里面执行,但是graph和session是独立创建的。所以,我们上述操作才没有显示input_value的值是多少。如果,我们想知道input_value中具体的值是多少,那么我们需要创建一个session。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值